package view.recados;

import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;

import model.Recado;
import model.comunication.IRecado;
import view.confirmaciones.RecadoEliminado;

public class RecadoSalida {

	private JFrame frame;
	private Recado recado;
	private IRecado cmmRecado;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					RecadoSalida window = new RecadoSalida(null);
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 * 
	 * @param datosMensaje
	 *            Recibe un arreglo de @String con los datos del mensaje
	 * @wbp.parser.entryPoint
	 */
	public RecadoSalida(Recado recado) {
		cmmRecado = IRecado.getInstance();
		this.recado = recado;
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setResizable(false);
		frame.setVisible(true);
		frame.setBounds(100, 100, 450, 339);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		JLabel lblTitulo = new JLabel("Mensaje");
		lblTitulo.setFont(new Font("Tahoma", Font.PLAIN, 15));
		lblTitulo.setBounds(10, 11, 113, 26);
		frame.getContentPane().add(lblTitulo);

		JButton btnCerrar = new JButton("Cerrar");
		btnCerrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				frame.dispose();
			}
		});
		btnCerrar.setBounds(335, 277, 89, 23);
		frame.getContentPane().add(btnCerrar);

		JButton btnBorrar = new JButton("Borrar");
		btnBorrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				cmmRecado.deleteRecado(new Recado(recado.getId(), null, null, null, null, null, null));
				frame.dispose();
				RecadoEliminado eliminado = new RecadoEliminado();
				eliminado.setVisble(true);
			}
		});
		btnBorrar.setBounds(236, 277, 89, 23);
		frame.getContentPane().add(btnBorrar);

		JLabel lblReceptor = new JLabel("Para:");
		lblReceptor.setBounds(10, 107, 27, 23);
		frame.getContentPane().add(lblReceptor);

		JTextField campoReceptor = new JTextField();
		campoReceptor.setEditable(false);
		campoReceptor.setBounds(47, 108, 179, 20);
		frame.getContentPane().add(campoReceptor);
		campoReceptor.setColumns(10);
		campoReceptor.setText(recado.getReceptor().getName());

		JLabel lblFecha = new JLabel("Fecha:");
		lblFecha.setBounds(236, 111, 46, 14);
		frame.getContentPane().add(lblFecha);

		JTextField campoFecha = new JTextField();
		campoFecha.setEditable(false);
		campoFecha.setBounds(292, 108, 132, 20);
		frame.getContentPane().add(campoFecha);
		campoFecha.setColumns(10);
		SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy HH:mm");
		String fechaRecado = format.format(recado.getFecha().getTime());
		campoFecha.setText(fechaRecado);

		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollPane.setBounds(10, 158, 414, 115);
		frame.getContentPane().add(scrollPane);

		JTextArea campoMensaje = new JTextArea();
		scrollPane.setViewportView(campoMensaje);
		campoMensaje.setEditable(false);
		campoMensaje.setLineWrap(true);
		campoMensaje.setWrapStyleWord(true);
		campoMensaje.setText(recado.getMensaje());

		JTextField campoAsunto = new JTextField();
		campoAsunto.setEditable(false);
		campoAsunto.setBounds(10, 77, 414, 20);
		frame.getContentPane().add(campoAsunto);
		campoAsunto.setColumns(10);
		campoAsunto.setText(recado.getAsunto());

		JLabel lblAsunto = new JLabel("Asunto:");
		lblAsunto.setBounds(10, 52, 46, 14);
		frame.getContentPane().add(lblAsunto);

		JButton btnResponder = new JButton("Responder");
		btnResponder.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				CrearRecado newRecado = new CrearRecado(recado.getEmisor().getId());
				frame.dispose();
				newRecado.setAsunto("Re: " + recado.getAsunto());
				newRecado.setDestinatario(recado.getReceptor().getName());
			}
		});
		btnResponder.setBounds(113, 277, 113, 23);
		frame.getContentPane().add(btnResponder);
	}
}
